&& echo timestamp > stamp-m
libgtk_la_LDFLAGS = \
- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE)
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) \
+ @GLIB_LIBS@ \
+ @x_ldflags@ \
+ @x_libs@ \
+ -lm
+# $(top_builddir)/gdk/libgdk.la
+
# We create a dummy theme for the default GTK+ theme
{
gboolean retval;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
retval = gtk_accel_label_refetch (accel_label);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
GdkEventMotion event;
GdkModifierType mask;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
clist->htimer = 0;
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
gtk_clist_motion (GTK_WIDGET (clist), &event);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
GdkEventMotion event;
GdkModifierType mask;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
clist->vtimer = 0;
gdk_window_get_pointer (clist->clist_window, &x, &y, &mask);
gtk_clist_motion (GTK_WIDGET (clist), &event);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
GdkColor bg;
window = gtk_window_new(GTK_WINDOW_POPUP);
- GTK_WIDGET_SET_FLAGS (window, GTK_USER_DRAW);
+ gtk_widget_set_app_paintable (GTK_WIDGET (window), TRUE);
gtk_widget_set_usize (window, 48, 32);
gtk_widget_realize (window);
{
gint x, y;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
gdk_window_get_pointer (colorsel->value_area->window, &x, &y, NULL);
gtk_color_selection_update_value (colorsel, y);
gtk_color_selection_color_changed (colorsel);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return (TRUE);
}
{
if (combo)
{
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
gtk_widget_grab_focus (combo->entry);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
}
return FALSE;
}
static gboolean
gtk_container_idle_sizer (gpointer data)
{
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
/* we may be invoked with a container_resize_queue of NULL, because
* queue_resize could have been adding an extra idle function while
gtk_container_check_resize (GTK_CONTAINER (widget));
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
gtk_widget_push_colormap (colormap);
window = gtk_window_new (GTK_WINDOW_POPUP);
- GTK_WIDGET_SET_FLAGS (window, GTK_USER_DRAW);
+ gtk_widget_set_app_paintable (GTK_WIDGET (window), TRUE);
gtk_widget_pop_visual ();
gtk_widget_pop_colormap ();
gint x, y;
gboolean retval;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
if (anim->step == anim->n_steps)
{
retval = TRUE;
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
{
GtkEntry *entry;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
entry = GTK_ENTRY (data);
entry->timer = 0;
gtk_entry_draw_text (entry);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
GdkEventMotion event;
GdkModifierType mask;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
GTK_LIST (list)->htimer = 0;
gdk_window_get_pointer (list->window, &x, &y, &mask);
gtk_list_motion_notify (list, &event);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
GdkEventMotion event;
GdkModifierType mask;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
GTK_LIST (list)->vtimer = 0;
gdk_window_get_pointer (list->window, &x, &y, &mask);
gtk_list_motion_notify (list, &event);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
#include "gtkdebug.h"
#include "gtkintl.h"
-extern gboolean gdk_using_threads;
-
/* Private type definitions
*/
typedef struct _GtkInitFunction GtkInitFunction;
* single threaded until gtk_init().
*/
- if (g_thread_supported)
+ if (g_thread_supported ())
gtk_threads_mutex = g_mutex_new ();
-
+
#if 0
g_set_error_handler (gtk_error);
g_set_warning_handler (gtk_warning);
loop = g_main_new ();
main_loops = g_slist_prepend (main_loops, loop);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
g_main_run (loop);
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
g_main_destroy (loop);
}
guint
-gtk_input_add_full (gint source,
- GdkInputCondition condition,
- GdkInputFunction function,
- GtkCallbackMarshal marshal,
- gpointer data,
- GtkDestroyNotify destroy)
+gtk_input_add_full (gint source,
+ GdkInputCondition condition,
+ GdkInputFunction function,
+ GtkCallbackMarshal marshal,
+ gpointer data,
+ GtkDestroyNotify destroy)
{
if (marshal)
{
gtk_destroy_closure (gpointer data)
{
GtkClosure *closure = data;
+
if (closure->destroy)
(closure->destroy) (closure->data);
g_free (closure);
}
static void
-gtk_invoke_input (gpointer data,
- gint source,
+gtk_invoke_input (gpointer data,
+ gint source,
GdkInputCondition condition)
{
GtkClosure *closure = data;
closure->marshal (NULL, closure->data, 2, args);
}
-GdkEvent *
+GdkEvent*
gtk_get_current_event (void)
{
if (current_events)
void
gtk_threads_enter ()
{
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
}
void
gtk_threads_leave ()
{
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
}
#if 0
{
GtkMenuItem *menu_item;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
menu_item = GTK_MENU_ITEM (data);
menu_item->timer = 0;
gtk_menu_shell_select_item (submenu, submenu->children->data);
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
{
gboolean retval = FALSE;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
if (notebook->timer)
{
retval = TRUE;
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
extern GMutex *gtk_threads_mutex;
-#define GTK_THREADS_ENTER G_STMT_START { \
- if (gtk_threads_mutex) \
- g_mutex_lock (gtk_threads_mutex); \
- } G_STMT_END
-#define GTK_THREADS_LEAVE G_STMT_START { \
- if (gtk_threads_mutex) \
- g_mutex_unlock (gtk_threads_mutex); \
- } G_STMT_END
+#ifdef G_THREADS_ENABLED
+# define GTK_THREADS_ENTER() G_STMT_START { \
+ if (gtk_threads_mutex) \
+ g_mutex_lock (gtk_threads_mutex); \
+ } G_STMT_END
+# define GTK_THREADS_LEAVE() G_STMT_START { \
+ if (gtk_threads_mutex) \
+ g_mutex_unlock (gtk_threads_mutex); \
+ } G_STMT_END
+#else /* !G_THREADS_ENABLED */
+# define GTK_THREADS_ENTER()
+# define GTK_THREADS_LEAVE()
+#endif /* !G_THREADS_ENABLED */
+
#ifdef __cplusplus
}
{
gint return_val;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
return_val = TRUE;
if (range->click_child == RANGE_CLASS (range)->slider)
(gpointer) range);
else
{
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
range->need_timer = FALSE;
return_val = gtk_range_scroll (range, -1);
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return return_val;
}
GList *tmp_list;
gboolean retval;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
/* Determine if retrieval has finished by checking if it still in
list of pending retrievals */
retval = TRUE; /* timeout will happen again */
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
GList *tmp_list;
gboolean retval;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
/* Determine if retrieval has finished by checking if it still in
list of pending retrievals */
retval = TRUE; /* timeout will happen again */
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
{
gboolean retval = FALSE;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
if (spin_button->timer)
{
}
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return retval;
}
gint x, y;
GdkModifierType mask;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
text = GTK_TEXT (data);
gtk_text_motion_notify (GTK_WIDGET (text), &event);
}
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
if (!tooltips->tip_window)
{
tooltips->tip_window = gtk_window_new (GTK_WINDOW_POPUP);
- GTK_WIDGET_SET_FLAGS (tooltips->tip_window, GTK_USER_DRAW);
+ gtk_widget_set_app_paintable (tooltips->tip_window, TRUE);
gtk_window_set_policy (GTK_WINDOW (tooltips->tip_window), FALSE, FALSE, TRUE);
gtk_signal_connect_object (GTK_OBJECT (tooltips->tip_window),
{
GtkTooltips *tooltips = (GtkTooltips *) data;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
if (tooltips->active_tips_data != NULL &&
GTK_WIDGET_DRAWABLE (tooltips->active_tips_data->widget))
gtk_tooltips_draw_tips (tooltips);
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
ARG_HEIGHT,
ARG_VISIBLE,
ARG_SENSITIVE,
+ ARG_APP_PAINTABLE,
ARG_CAN_FOCUS,
ARG_HAS_FOCUS,
ARG_CAN_DEFAULT,
gtk_object_add_arg_type ("GtkWidget::height", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_HEIGHT);
gtk_object_add_arg_type ("GtkWidget::visible", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_VISIBLE);
gtk_object_add_arg_type ("GtkWidget::sensitive", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_SENSITIVE);
+ gtk_object_add_arg_type ("GtkWidget::app_paintable", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_APP_PAINTABLE);
gtk_object_add_arg_type ("GtkWidget::can_focus", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_CAN_FOCUS);
gtk_object_add_arg_type ("GtkWidget::has_focus", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_HAS_FOCUS);
gtk_object_add_arg_type ("GtkWidget::can_default", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_CAN_DEFAULT);
case ARG_SENSITIVE:
gtk_widget_set_sensitive (widget, GTK_VALUE_BOOL (*arg));
break;
+ case ARG_APP_PAINTABLE:
+ gtk_widget_set_app_paintable (widget, GTK_VALUE_BOOL (*arg));
+ break;
case ARG_CAN_FOCUS:
saved_flags = GTK_WIDGET_FLAGS (widget);
if (GTK_VALUE_BOOL (*arg))
case ARG_SENSITIVE:
GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_SENSITIVE (widget) != FALSE);
break;
+ case ARG_APP_PAINTABLE:
+ GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_APP_PAINTABLE (widget) != FALSE);
+ break;
case ARG_CAN_FOCUS:
GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_CAN_FOCUS (widget) != FALSE);
break;
GSList *draw_data_list;
GtkWidget *widget;
- GTK_THREADS_ENTER;
+ GTK_THREADS_ENTER ();
/* Translate all draw requests to be allocation-relative */
widget_list = gtk_widget_redraw_queue;
g_slist_free (gtk_widget_redraw_queue);
gtk_widget_redraw_queue = NULL;
- GTK_THREADS_LEAVE;
+ GTK_THREADS_LEAVE ();
return FALSE;
}
}
}
+void
+gtk_widget_set_app_paintable (GtkWidget *widget,
+ gboolean app_paintable)
+{
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+
+ app_paintable = (app_paintable != FALSE);
+
+ if (GTK_WIDGET_APP_PAINTABLE (widget) != app_paintable)
+ {
+ if (app_paintable)
+ GTK_WIDGET_SET_FLAGS (widget, GTK_APP_PAINTABLE);
+ else
+ GTK_WIDGET_UNSET_FLAGS (widget, GTK_APP_PAINTABLE);
+
+ if (GTK_WIDGET_DRAWABLE (widget))
+ gtk_widget_queue_clear (widget);
+ }
+}
+
/*****************************************
* gtk_widget_set_sensitive:
*
GTK_RC_STYLE = 1 << 16,
GTK_COMPOSITE_CHILD = 1 << 17,
GTK_NO_REPARENT = 1 << 18,
- GTK_USER_DRAW = 1 << 19
+ GTK_APP_PAINTABLE = 1 << 19
} GtkWidgetFlags;
/* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer.
#define GTK_WIDGET_HAS_GRAB(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_HAS_GRAB) != 0)
#define GTK_WIDGET_RC_STYLE(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_RC_STYLE) != 0)
#define GTK_WIDGET_COMPOSITE_CHILD(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_COMPOSITE_CHILD) != 0)
-#define GTK_WIDGET_USER_DRAW(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_USER_DRAW) != 0)
+#define GTK_WIDGET_APP_PAINTABLE(wid) ((GTK_WIDGET_FLAGS (wid) & GTK_APP_PAINTABLE) != 0)
/* Macros for setting and clearing widget flags.
*/
void gtk_widget_set_state (GtkWidget *widget,
GtkStateType state);
void gtk_widget_set_sensitive (GtkWidget *widget,
- gint sensitive);
+ gboolean sensitive);
+void gtk_widget_set_app_paintable (GtkWidget *widget,
+ gboolean app_paintable);
void gtk_widget_set_parent (GtkWidget *widget,
GtkWidget *parent);
void gtk_widget_set_parent_window (GtkWidget *widget,
g_return_val_if_fail (GTK_IS_WINDOW (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
- if (!GTK_WIDGET_USER_DRAW (widget))
+ if (!GTK_WIDGET_APP_PAINTABLE (widget))
gtk_window_paint (widget, &event->area);
if (GTK_WIDGET_CLASS (parent_class)->expose_event)
gtk_window_draw (GtkWidget *widget,
GdkRectangle *area)
{
- if (!GTK_WIDGET_USER_DRAW (widget))
+ if (!GTK_WIDGET_APP_PAINTABLE (widget))
gtk_window_paint (widget, area);
if (GTK_WIDGET_CLASS (parent_class)->draw)